//
//  MenuAnimator.h
//  Imp
//
//  Created by Alex Carter on 11/06/09.
//  Copyright 2009 __MyCompanyName__. All rights reserved.
//

#import <Foundation/Foundation.h>

#if TARGET_OS_IPHONE
typedef UIView KFView;
#else 
typedef NSView KFView;
#endif

@protocol KFAnimationHelperDelegate

-(void) animateAllInDidFinish;
-(void) animateAllOutDidFinish;


@end
@class KFAnimationState;

@interface KFAnimationHelper : NSObject <KFAnimationHelperDelegate> {
    
    NSMutableArray *states;
    id delegate;    
    NSMutableArray *visibleViews;
    NSMutableArray *hiddenViews;    
    
    NSMutableArray *animatingIn;
    NSMutableArray *animatingOut;
        
    NSMutableArray *animatingRotate;    
    NSMutableDictionary *animationInfo;        
}
@property (nonatomic,retain) NSMutableArray *animatingIn;
@property (nonatomic,retain) NSMutableArray *animatingOut;
@property (nonatomic,retain) NSMutableArray *animatingRotate;
@property (nonatomic,retain) NSMutableDictionary *animationInfo;
@property (nonatomic,retain) NSMutableArray *states;
@property (nonatomic,retain) id delegate;
@property (nonatomic,retain) NSMutableArray *visibleViews;
@property (nonatomic, readonly,retain) NSMutableArray *hiddenViews;   

+(KFAnimationHelper*) animationHelper;


-(KFAnimationState*) stateAtIndex:(NSInteger) theIndex;
-(void) setState:(KFAnimationState*)theState atIndex:(NSInteger) theIndex;

-(void) addView:(KFView*)theView;
//-(void) removeButton:(UIButton*)theButton;

-(void) beginRotate;
-(void) rotateWithVelocity:(CGFloat) velocity;
-(void) rotateBy:(CGFloat) amount;
-(void) endRotate;
@end
